﻿namespace Okazuki.TepcoUsageApi.Client
{
    using System.Runtime.Serialization;

    /*
       {
          "saving": false, 
          "hour": 19, 
          "capacity_updated": "2011-03-23 16:05:00", 
          "month": 3, 
          "usage_updated": "2011-03-24 11:05:34", 
          "entryfor": "2011-03-24 10:00:00", 
          "year": 2011, 
          "usage": 3430, 
          "capacity": 3850, 
          "day": 24
        }
     */
    /// <summary>
    /// 東京電力電力供給状況
    /// </summary>
    [DataContract]
    public class TepcoStatus
    {
        /// <summary>
        /// 年
        /// </summary>
        [DataMember(Name = "year")]
        public int Year { get; set; }

        /// <summary>
        /// 月
        /// </summary>
        [DataMember(Name = "month")]
        public int Month { get; set; }

        /// <summary>
        /// 日
        /// </summary>
        [DataMember(Name = "day")]
        public int Day { get; set; }

        /// <summary>
        /// 時刻(24h)
        /// </summary>
        [DataMember(Name = "hour")]
        public int Hour { get; set; }

        /// <summary>
        /// この時間に計画停電が実施されていたらtrue
        /// </summary>
        [DataMember(Name = "saving")]
        public bool Saving { get; set; }

        /// <summary>
        /// 供給可能最大電力が決定された日時（UTC）の文字列表現
        /// </summary>
        [DataMember(Name = "capacity_updated")]
        public string CapacityUpdated { get; set; }


        /// <summary>
        /// この消費電力のデータが更新された日時(UTC)の文字列表現
        /// </summary>
        [DataMember(Name = "usage_updated")]
        public string UsageUpdated { get; set; }

        /// <summary>
        /// この時刻の文字列(UTC)
        /// </summary>
        [DataMember(Name = "entryfor")]
        public string EntryforText { get; set; }

        /// <summary>
        /// この時間帯の消費電力(万kW)
        /// </summary>
        [DataMember(Name = "usage")]
        public int Usage { get; set; }

        /// <summary>
        /// この時間帯の供給可能最大電力(万kW)
        /// </summary>
        [DataMember(Name = "capacity")]
        public int Capacity { get; set; }

        /// <summary>
        /// 最大の供給能力を発揮する予定の時刻（24時間制、日本時間）。
        /// つまり、揚水発電を使って一時的に最大能力を発揮する時刻です。
        /// 過去のデータでは、この値が存在しないため「null」です。
        /// </summary>
        [DataMember(Name = "capacity_peak_period")]
        public int? CapacityPeakPeriod { get; set; }

    }
}
